#ifndef SHM_HPP
#include<iostream>
#include<string>
#include<sys/ipc.h>
#include<sys/shm.h>
#include<cstdio>
#include<sys/types.h>

using namespace std;

string gpathname =".";
int gproj_id =0x66;
int gdefaultsize =4096;

//共享内存

class SharedMemory
{
public:
    SharedMemory(int size =gdefaultsize):_size(size),_key(0),_shmid(-1)
    {

    }
    bool Creat()
    {
        _key=ftok(gpathname.c_str(),gproj_id);
        if(_key<0)
        {
            perror("ftok");
            return false;
        }
        printf("形成键值成功：0x%p\n",_key);

        _shmid=shmget(_key,_size,IPC_CREAT|IPC_EXCL);//创建全新的shm
        if(_shmid<0)
        {
            perror("shmget");
            return false;
        }
    }
    ~SharedMemory(){}


private:
    int _size;
    key_t _key;
    int _shmid;
};












#endif